const { Model, DataTypes } = require("sequelize");

class Users extends Model {
  static init(sequelize) {
    super.init(
      {
        id: {
          type: DataTypes.INTEGER,
          primaryKey: true,
          autoIncrement: true,
        },
        nickname: {
          type: DataTypes.STRING(20),
          allowNull: false,
        },
        account: {
          type: DataTypes.STRING(20),
          allowNull: false,
          unique: true, // 账号唯一
        },
        avatar: {
          type: DataTypes.STRING(120),
        },
        email: {
          type: DataTypes.STRING(30),
        },
        tel: {
          type: DataTypes.STRING(20),
        },
        password: {
          type: DataTypes.STRING(100), // 加密后的密码长度可能较长
          allowNull: false,
        },
        state: {
          type: DataTypes.STRING(20),
          allowNull: false,
          defaultValue: "1", // 默认状态为启用（1）
        },
        banreason: {
          type: DataTypes.STRING(120),
        },
        money: {
          type: DataTypes.FLOAT, // 浮点型
          allowNull: true, // 可空
          defaultValue: 10, // 默认值为 10
        },
        createdAt: {
          type: DataTypes.DATE,
          allowNull: false,
        },
        updatedAt: {
          type: DataTypes.DATE,
          allowNull: false,
        },
        xuexiao: {
          type: DataTypes.STRING(30),
        },
        xueyuan: {
          type: DataTypes.STRING(30),
        },
        zhuanye: {
          type: DataTypes.STRING(30),
        },
        xuehao: {
          type: DataTypes.STRING(30),
        },
      },
      {
        sequelize,
        modelName: "Users",
        tableName: "users",
        timestamps: false, // 禁止自动管理 createdAt 和 updatedAt
      }
    );
  }

  static associate(models) {
    // 定义关联关系
  }
}

module.exports = Users;
